El método replace de la clase string reemplaza una parte de un string con otro string. La mejor forma de verlo es con un ejemplo:
#include <iostream> using namespace std; int main() { string s = "Arthur C. Clarke"; s.replace(7, 2, "Charles"); cout << s << endl; }
En el ejemplo, se crea un objeto s de clase string, y se inicializa con el nombre de un famoso escritor de ciencia ficción. Luego, en la segunda instrucción se invoca el método replace sobre el objeto s, con tres parámetros:
El método replace entonces, tiene una declaración como la siguiente:
void string::replace(int pos, int N, string remplazo)
Se antepone string:: a su nombre para indicar que el método pertenece a la clase string, y por tanto se invoca solamente sobre objetos de clase string.
Existen otras versiones similares a ésta que hacen cosas muy parecidas:
void string::replace(int pos1, int N2, string remp, int pos2, int N2)
En esta versión, el reemplazo no se hace con remp entero. Se añaden los parámetros pos2 y N2 que indican el trozo de remp que se debe usar: N2 caracteres a partir de la posición pos2. Por ejemplo, al hacer:
string s = "Hola don Sancho"; string r = "Adios don Ramiro"; s.replace(0, 4, r, 0, 5);
entonces s contendrá: "Adios don Sancho".
void string::replace(int pos1, int n1, int n2, char c)
En esta versión, se reemplaza el trozo indicado con pos1 y n1 por n2 copias del caracter c. Por ejemplo, el resultado de hacer:
string g = "gol"; g.replace(1, 1, 15, 'o');
es que g valdrá: "goooooooooooooool".
En preparación